# 1）奇偶排序
# 	给定10个整数的序列，要求对其重新排序。排序要求:
# 1.奇数在前，偶数在后；
# 2.奇数按从大到小排序；
# 3.偶数按从小到大排序。
# list1=[4,7,3,13,11,12,0,47,34,98]
# def order(ls):
#     a=[]
#     b=[]
#     for i in ls:
#         if i%2 !=0:
#             a.append(i)
#         else:
#             b.append(i)
#     a.sort(reverse=True)
#     b.sort()
#     a.extend(b)
#     return a
# print(order(list1))
# 2）定义一个函数，功能为查找列表中的元素，要求：如果有该元素，返回该元素对应的下标，如果没有该元素，返回None

# list1=[4,7,3,13,11,12,0,47,34,98]
# def jude(ls,element):
#     for i in ls:
#         if element==i:
#             index1 = ls.index(i)
#             return index1
#     return None
# print(jude(list1,0))


# 3）使用列表推导式过滤出以下列表中长度大于 3 的单词 words = ['apple', 'banana', 'pie', 'orange', 'kiwi']
# words = ['apple', 'banana', 'pie', 'orange', 'kiwi']
# def getelements(ls):
#     a=[i for i in words if len(i) > 3]
#     return a
# print(getelements(words))
# # 5）国家列表 a= ['中国', '阿根廷', '澳大利亚', '阿尔及利亚', '哈萨克斯坦', '俄罗斯', '巴西', '美国', '加拿大', '印度']
#      对应的国土面积 b = [960, 278,769.2 ,238.1, 272.2, 1709.8, 851.4, 937,998.4, 298]
#     根据国土面积对国家进行排序，打印结果（按国土大小顺序顺序）：
#        第1大的国土面积：国家名=国土面积
#        第2大的国土面积：国家名=国土面积

# a= ['中国', '阿根廷', '澳大利亚', '阿尔及利亚', '哈萨克斯坦', '俄罗斯', '巴西', '美国', '加拿大', '印度']
# b = [960, 278,769.2 ,238.1, 272.2, 1709.8, 851.4, 937,998.4, 298]
#1
# def common(ls1,ls2):
#     for i in range(0, len(b) - 1):  # 循环几轮
#         for j in range(0, len(b) - i - 1):  # 每一轮的操作 两两进行比较
#             # 比较
#             if b[j] < b[j + 1]:
#                 # 互换 a,b同步进行
#                 b[j], b[j + 1] = b[j + 1], b[j]
#                 a[j], a[j + 1] = a[j + 1], a[j]
#     for m in range(len(a)):
#         #使用索引直接访问对应的国家和面积
#         print (f'第{m+1}大的国土面积：{a[m]}={b[m]}')
# print(common(a,b))
#2
# for idx, (country, area) in enumerate(zip(a, b), start=1):
#     print(f'第{idx}大的国土面积：{country}={area}')
# 6)有一个学生列表，每个学生是一个字典，包含 name 和 score。使用冒泡排序根据学生的分数 (score) 对列表进行降序排列。
# 示例数据：
# students = [{'name': 'Alice', 'score': 95}, {'name': 'Bob', 'score': 88}, {'name': 'Charlie', 'score': 92}]
# 期望输出：
# [{'name': 'Alice', 'score': 95}, {'name': 'Charlie', 'score': 92}, {'name': 'Bob', 'score': 88}]
students = [{'name': 'Alice', 'score': 95}, {'name': 'Bob', 'score': 88}, {'name': 'Charlie', 'score': 92}]
def get_name_student_order(ls):
    # 提取姓名和分数到两个列表
    a = [student['name'] for student in ls]
    b = [student['score'] for student in ls]
    for i in range(0, len(b) - 1):  # 循环几轮
        for j in range(0, len(b) - i - 1):  # 每一轮的操作 两两进行比较
            # 比较
            if b[j] < b[j + 1]:
                # 互换
                b[j], b[j + 1] = b[j + 1], b[j]
                a[j], a[j + 1] = a[j + 1], a[j]
    # 重新组合成字典列表
    c = [{"name": name, "score": score} for name, score in zip(a, b)]
    return c
print(get_name_student_order(students))

students = [{'name': 'Alice', 'score': 95}, {'name': 'Bob', 'score': 88}, {'name': 'Charlie', 'score': 92}]

n = len(students)
for i in range(n-1):
    # 每一轮：前面的数与后面的数比较
    for j in range(0, n-i-1):
        # 如果前一个学生的分数小于后一个，就交换位置
        if students[j]['score'] < students[j+1]['score']:
            students[j], students[j+1] = students[j+1], students[j]

print(students)




